客户端
user-agent
是什么?user-agent
就是任何能够为用户发起行为的工具。这个角色通常都是由浏览器来扮演。一些例外情况,比如是开发者使用的程序,以及Web
开发者调试应用程序。http
是什么?
超文本传输协议(HTTP
),它通常被用于Web
浏览器和Web
服务器之间的通信服务器资源是什么?
网络上的一切内容都是资源,无论是静态的文件,还是动态生成的文件媒体类型是什么?
就是一种数据类型的标记,用来表示传输的数据是什么类型的,好让接收端知道,接收到的是什么类型的数据,这样接收端好处理该数据。
常见的标记方式是[MIME
][0_0],MIME
描述了文件的主要类型以及特定子类型,如Content-Type: text/html
,text
描述文件的主要类型是文本,而子类型是html
文档。
浏览器通常使用MIME
类型(而不是文件扩展名)来确定如何处理文档;因此服务器设置正确的MIME
类型附加到响应对象的头部是非常重要的。URI
是什么?
首先URI
从其概念来说是统一资源标识符,它的作用就是在网络上唯一确定一个资源,就好比,在中国,身份证能唯一确定一个人一样!知道身份证号,就一定能确定一个人姓甚名谁一样!它有两个子集:URL
(统一资源定位符)和URN
(统一资源名),首先不特别声明,我们所说的URI
就是指URL
,URL
是跟资源其在网络上的位置有关!而URN
是指资源跟其名字有关。请求方法指什么?
客户端向服务器发起请求的方式。常见的方法有:get、post、delete、put
状态码是什么??
HTTP
响应状态码指示HTTP
请求是否已成功完成。响应分为五类:信息响应,成功响应,重定向,客户端错误和服务器错误。报文是什么?
HTTP
报文分为:请求报文、响应报文。两种报文都具有类似的结构,分别由三个部分构成:起始行、首部、主体,起始行描述报文干了什么。首部描述报文传输的具体细节。主体描述传输的实际内容。从
URL
输入到页面显示,经历了什么过程?浏览器地址栏输入时联想提示
URL
解析,URL
为了在不同协议不同传输机制都可以安全的运送信息,采用的字符都是符合ASCII
集的。若有非ASCII
的字符(中文等),就会先通过转义处理。DNS (Domain Name System)
解析- 为什么要
DNS
解析
因为 http 是基于 tcp 连接的,而 tcp 则是通过 ip 地址去识别的。DNS 解析就是域名转化成 ip 地址的过程 - 浏览器
DNS
解析优先级
查看浏览器内部缓存 —> 系统缓存(host
文件) —> 路由器缓存、ISP
缓存 —> 本地DNS
服务器(可无) —>DNS
服务器 —> 找不到服务器地址
- 为什么要
浏览器建立一条与web服务器的
TCP
连接(TCP
三次握手)浏览器向服务器发送一条
http
请求报文服务器向浏览器回送一条
http
响应报文浏览器解析渲染文档
- 关闭连(
TCP
四次握手)
二、HTTP
报文
HTTP/1.1
以及更早的 HTTP
协议报文都是语义可读的。在 HTTP/2
中,这些报文被嵌入到了一个新的二进制结构,帧。报文分请求报文、响应报文。都由三个部分组成,起始行、首部、主体。
1 | # 请求报文 |
1 | # 响应报文 |